/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.oa.entity;

import com.thinkgem.jeesite.common.persistence.ActEntity;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;
import com.thinkgem.jeesite.modules.act.entity.Act;
import com.thinkgem.jeesite.modules.sys.entity.Category;
import com.thinkgem.jeesite.modules.sys.entity.Classify;
import org.hibernate.validator.constraints.Length;
import com.thinkgem.jeesite.modules.sys.entity.User;
import com.thinkgem.jeesite.modules.sys.entity.Office;

import com.thinkgem.jeesite.common.persistence.DataEntity;

import java.util.List;

/**
 * 预算管理Entity
 * @author Michael
 * @version 2017-07-31
 */
public class Budget extends ActEntity<Budget> {
	
	private static final long serialVersionUID = 1L;
	private User user;		// 用户
	private String officeId;
	private String officeLike;
	private Office office;		// 归属部门
	private Category category;		// 计财处项目类别
	private Classify classify;		// 计财司项目类别
	private String annual;		// 年度
	private String title;		// 项目名称
	private String aggregate;		//
	private String duatyText;		// 处室负责人意见
	private String auditText;		// 计财处审核人意见
	private String collectText;		// 计财处汇总意见
	private List<Subject> subjectList;
	private String actionType;//操作类型
	private Act currentAct;//当前流程
	private User processUser;//当前处理人
	public Budget() {
		super();
	}

	public Budget(String id){
		super(id);
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	@ExcelField(title="所属处室", align=2, sort=20)
	public Office getOffice() {
		return office;
	}

	public void setOffice(Office office) {
		this.office = office;
	}
	@ExcelField(title="项目类型", align=2, sort=20)
	public Category getCategory() {
		return category;
	}

	public void setCategory(Category category) {
		this.category = category;
	}
	@ExcelField(title="项目分类", align=2, sort=20)
	public Classify getClassify() {
		return classify;
	}

	public void setClassify(Classify classify) {
		this.classify = classify;
	}

	public String getOfficeId() {
		return officeId;
	}

	public void setOfficeId(String officeId) {
		this.officeId = officeId;
	}

	public String getOfficeLike() {
		return officeLike;
	}

	public void setOfficeLike(String officeLike) {
		this.officeLike = officeLike;
	}

	@Length(min=0, max=64, message="年度长度必须介于 0 和 64 之间")
	public String getAnnual() {
		return annual;
	}

	public void setAnnual(String annual) {
		this.annual = annual;
	}
	
	@Length(min=0, max=255, message="项目名称长度必须介于 0 和 255 之间")
	@ExcelField(title="项目名称", type=1, align=2, sort=1)
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}
	
	@Length(min=0, max=255, message="处室负责人意见长度必须介于 0 和 255 之间")
	public String getDuatyText() {
		return duatyText;
	}

	public void setDuatyText(String duatyText) {
		this.duatyText = duatyText;
	}
	
	@Length(min=0, max=255, message="计财处审核人意见长度必须介于 0 和 255 之间")
	public String getAuditText() {
		return auditText;
	}

	public void setAuditText(String auditText) {
		this.auditText = auditText;
	}
	
	@Length(min=0, max=255, message="计财处汇总意见长度必须介于 0 和 255 之间")
	public String getCollectText() {
		return collectText;
	}

	public void setCollectText(String collectText) {
		this.collectText = collectText;
	}

	public List<Subject> getSubjectList() {
		return subjectList;
	}

	public void setSubjectList(List<Subject> subjectList) {
		this.subjectList = subjectList;
	}

	public String getAggregate() {
		return aggregate == null ? "0":aggregate;
	}

	public void setAggregate(String aggregate) {
		this.aggregate = aggregate;
	}

	public String getActionType() {
		return actionType;
	}

	public void setActionType(String actionType) {
		this.actionType = actionType;
	}

	public Act getCurrentAct() {
		return currentAct;
	}

	public void setCurrentAct(Act currentAct) {
		this.currentAct = currentAct;
	}

	public User getProcessUser() {
		return processUser;
	}

	public void setProcessUser(User processUser) {
		this.processUser = processUser;
	}
}